iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0

SOLID組成:
● 單一職責原則 Single Responsibility Principle,SRP
開放閉合原則 Open Closed Principle,OCP
● 里氏替換原則 Liskov Substitution Principle,LSP
● 介面隔離原則 Interface Segregation Principle,ISP
依賴反轉原則 Dependency Inversion Principle,DIP

為甚麼會有SOLID設計原則?
為了解決程式的可維護性issue所造成的開發成本(時間、人力、資金)上升

維護成本在生活上處處可見,比方說汽車的維護它會因為使用的時間而導致成本的增加
想當然軟體一樣也會因為需求變更,又沒有好的設計規範則維護成本也會更著增加

思構了SOLID設計原則似乎只適用於動態網頁,而其網頁對「使用方」來看〝不〞屬於「專案性質」
若要定義軟體專案性質與否,應該可以試著以成本的「攤銷」來區分,適用於營利事業所得稅查核準則第96條第1項第3點的(一)、(二)、(四),應可斷定該軟體不屬專案性質,需考慮軟體維護性。

像前陣子1922疫苗預約平台很明顯就屬專案性質,但各縣市政府的疫苗預約平台應屬非專案性質(因為還要一直補打加強劑來看,不知未來會增加甚麼需求)


單一職責原則
定義:A class should have only one reason to change.
目的:解決業務耦合,即一個模組應只對唯一的一個角色負責。
舉個生活的例子:
超市的員工假設沒有明確切割業務,結帳的跑去補貨╴補貨跑去管理倉庫╴管理倉庫跑去補貨,最後都沒人結帳就產生顧客抱怨進而影響商譽降低營收;所以結帳的員工就應該負責結帳的客戶╴補貨的員工就應該負責採買的客戶╴管理倉庫的員工就應該負責進貨的廠商。
以上就是一個模組只對一個角色負責,所以說SRP為理念前提,由被更動組件角度(客戶)解決業務(員工)的耦合


上一篇
那些服務民眾的日子~我做了甚麼
下一篇
SOLID設計原則 – 開放閉合原則
系列文
寫寫歷年職場經歷過的大小事或近期所學習的知識啟發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言